﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
using T.Personnel.Domain;
using T.Personnel.Domain.Dto;

namespace T.Personnel.Repository.Interface
{
    public interface IRegisterRepository:IRepository<Register>
    {
        Task<Result<Register>> GetRegisterAsync(string? Name, int? DepartmentId, int? PositionId, string? Phone, string? EmployeeType, int PageIndex, int PageSize);
        Task<Register> GetRegisterAsync(int id);
        Task<int> DelRegisterAsync(int id, string name);
        Task<int> UpdRegisterAsync(Register register);
        Task<int> AddRegisterAsync(Register register);
        Task<List<ItemsDto>> GetUserEntryAsync(int PositionId);
        Task<List<ItemsDto>> GetUserFullAsync(int PositionId);
        Task<List<ItemsDto>> GetUserResignationAsync(int PositionId);
        Task<List<ItemsDto>> GetPrincipalsAsync(int Department,int StaffId);
        Task<List<Register>> GetAllAsync();
    }
}
